1. Field of the Invention
This invention relates generally to the field of computer storage, and more particularly to bootable storage media that can emulate either a hard disk or a floppy disk.
2. Background of the Related Art
Before a computer can run an operating system, it must load the operating system into the computer's working memory. This process is ordinarily carried out by a process called "bootstrapping," or "booting." Booting occurs automatically when a computer is powered on or can be specifically invoked by a user on a running computer.
Typically, the booting process of a computer searches a storage media (floppy disk, hard drive, or CD-ROM) for an operating system to be loaded and this function is usually controlled by firmware stored in one or more Basic Input-Output system ("BIOS") chips in the computer. After locating a disk with a valid boot record, the BIOS program reads the data stored on the first sector of the disk and copies that data into specific locations in the computer's Random Access Memory ("RAM"). In a typical, Personal Computer ("PC"), this data constitutes the DOS Boot Record. Execution of code contained in the DOS Boot Record causes the computer to load the remaining files and code that comprise the operating system.
Traditionally, the usual kinds of storage media were the hard drive and the floppy disks, which are magnetic media. More recently, CD-ROMs, which are optical media, have become very popular as they store large amounts of data. CD-ROM's have the attributes of both hard drives and floppy disks in that they have the larger storage capacity of the hard drives and the easy removability of floppy disks. CD-ROM's are formatted with a boot record residing at a prescribed sector on the CD-ROM. The boot record points to a boot catalog that provides descriptions and locations of hard drive and floppy disk image emulations recorded on the CD-ROM, one or more of which may be bootable and may carry an operating system.
Image formats of these three types of media are hierarchical in structure, with the floppy disk being the lowest and the CD-ROM the highest. That is, each medium adds layers or regions of storage information to the mediums that are below it. Therefore, the floppy disk image has the fewest layers of information, the hard disk adds a few additional layers of information and a CD-ROM adds even more layers of information.
FIG. 1 depicts the image formats of the three media with the floppy disk 10 starting with a boot record 11, which is short program that loads the operating system into main memory, followed by a pair of File Allocation Tables 12 (or "FAT"). Thereafter, there is a root directory 13 which maps the files that are stored in a data storage area 14.
The structure of a fixed disk 15 includes all the same regions as are found in a floppy disk but additionally includes a master boot record 16 that includes a partition table 17. The partition tables 17 define the logical partitions on the disk each of which can contain a separate operating system. The master boot record contains code that determines the active partition at boot time to determine the appropriate operating system to load.
The CD-ROM 20 further adds table of descriptors 21, such as that defined by ISO 9660, as the non-reserved first record of the CD-ROM. Following the table of descriptors 21, is a boot catalog directory 22 that points to the stored image files and identifies the image characteristics. The ISO 9660 specification provides, optionally, new boot capabilities for personal computers. Further details of a CD-ROM emulated as a hard disk or a floppy diskette is provided in the background section of U.S. Pat. No. 5,692,190 ("'190 patent"), issued to Williams on Nov. 25, 1997. The disclosure of background section of the '190 patent is incorporated herein, in its entirety.
These boot capabilities for the PC's have been further expanded by the El Torito bootable CD-ROM specification, Version 1.0, jointly developed by Phoenix Technologies and IBM Corporation. This specification defines four formats of bootable CD-ROM's. These formats are floppy drive emulation, hard drive emulation, no emulation, and multiple boot images. The purpose of having the two drive emulation images is to allow the Basic Input-Output System ("BIOS") to use the images as a virtual disk drive. The BIOS en assigns a drive number to the image and allows it to be used as a read only hard drive floppy drive. The disclosure of the El Torito Bootable CD-ROM specification, Version 1.0, Jan. 25, 1995, published by Phoenix Technologies and IBM, is incorporated herein its entirety.
Each type of drive emulation has its own advantages and disadvantages. The floppy mulation allows the CD-ROM drive to receive the same letter (D:) that it would normally receive. This is because the floppy drive, normally assigned to the A: drive, is reassigned o the B: drive, and all drives from C: onwards receive their normal assignments. Therefore, the CD-ROM remains assigned to the D: drive.
On the other hand, hard drive emulation installs the hard drive image as drive C: and thereby causes a shift in the assignment of drive letters from C: onwards from their normal assignments. Therefore, the drive letter assigned to the CD-ROM image is shifted by one letter. However, the hard drive emulation allows the emulated drive to be of any size.
Accordingly, multiple-boot CD-ROMs allow a user to choose which emulation they would prefer after considering the advantages and disadvantages of the two emulations. However, multiple boot images suffer from the disadvantage that they use valuable storage space by storing two boot images which are very similar to each other. Therefore, for example, if a fairly large boot image is required, it can significantly reduce the typical CD-ROM storage of 600 Megabytes("Mb") and, thereby, make it undesirable to store two largely identical boot images.
FIG. 2A shows a normal CD-ROM configuration that is not bootable and uses the Root Directory structure and CD-ROM drivers in the operating system to access the CD-ROM images.
FIG. 2B shows a CD-ROM with a single boot configuration in which a BIOS with a single Boot-Image capability accesses the Initial/Default entry 25 to access a single bootable disk image 26. After loading the operating system, the system can revert to standard Root Directory and CD-ROM drivers to access the CD-ROM images.
FIG. 3 is a map of the ISO 9660 operating environment in which a map 30 of the 1 Mb of main memory is shown. The lowest area is occupied by the BIOS data area 31, and which provides identification and access to the drives by BIOS functions, such as the INT 13 h functions. The usual BIOS functions, however, do not provide the access to the CD-ROM which is instead defined by ISO-9660 device driver software residing in a operating system, for example, DOS 32.
FIGS. 4A and 4B show the enhancements to the BIOS 30a described in the El Torito specification that enable an the INT 13 calls to recognize the CD-ROM and to provide hard drive and floppy disk image emulation based on files stored on the CD-ROM. That is, they treat the respective emulation images as if they are the hard drive or floppy disk drive and the other drives are relabeled to accommodate this emulation. For example, the allocation of the A: drive to the floppy disk image or the C: drive to the hard drive image, respectively, causes the actual floppy drive or the actual hard drive to be relabeled from their normal assignments.
FIG. 2C shows a CD-ROM BIOS with multiple Boot-Image capability in which a BIOS can access any one of a number of Boot Disk Images 26 listed in the booting catalog 25. After loading the operating system, the system can access other items in the disk image with standard BIOS Interrupt (INT) 13 calls or return to normal access of CD-ROM images using CD-ROM drivers and the Root Directory. However, this multiple boot--multiple disk image configuration suffers from the disadvantage mentioned earlier that it stores a separate bootable disk image corresponding to each of the multiple boot images of the CD-ROM. Accordingly, this configuration uses more space on the CD-ROM and reduces the space available on a CD-ROM.
Therefore, there is a requirement for a CD-ROM configuration which allows a multiple boot image emulation from a CD-ROM while maximizing the space available for storing CD-ROM images.